#include<p18f4550.h>

void main ()
{
TRISA=31;
TRISB=0;
ADCON1=15;
     while(1){ if(PORTAbits.RA3==0){// sin objeto
    if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==0 ){//condicion de movimiento para adelante

        PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho


    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==0){//condicion de movimiento para la izquierda

        PORTBbits.RB0==0;//motor izquierdo
        PORTBbits.RB1==1;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho



    }
    else if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento para la derecha

        PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==0;//motor derecho
        PORTBbits.RB3==1;//motor derecho


    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento detener y giro 180 grados

           PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho


    }


    }
     else if(PORTAbits.RA3==1){//con objeto
    if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==0 ){//condicion de movimiento para adelante

        PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho


    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==0){//condicion de movimiento para la izquierda

        PORTBbits.RB0==0;//motor izquierdo
        PORTBbits.RB1==1;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho



    }
    else if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento para la derecha

        PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==0;//motor derecho
        PORTBbits.RB3==1;//motor derecho


    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento detener y giro 180 grados


        PORTBbits.RB0==1;//motor izquierdo
        PORTBbits.RB1==0;//motor izquierdo
        PORTBbits.RB2==1;//motor derecho
        PORTBbits.RB3==0;//motor derecho

    }


    }

     }

}